using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Thaire.Investment.Domains.Transaction
{
   
    public class UnitTrustTransaction 
    {
        #region Properties
              // UNIT_TRUST_TRANSACTION_ID
        public virtual int ID { set; get; }
      // UNIT_TRUST_TRANSACTION_HEADER_ID
        public virtual int UnitTrustTransactionHeaderID { set; get; }
      // TRANSACTION_TYPE
        public virtual String TransactionType { set; get; }
      // REF_NO
        public virtual String RefNO { set; get; }
      // TYPEOFPAYMENT_NAME
        public virtual String TypeofpaymentName { set; get; }
      // TYPEOFPAYMENT_ID
        public virtual int? TypeofpaymentID { set; get; }
      // TRADE_DATE
        public virtual DateTime? TradeDate { set; get; }
      // SETTLEMENT_DATE
        public virtual DateTime? SettlementDate { set; get; }
      // UNIT
        public virtual int? Unit { set; get; }
      // PRICE_UNIT
        public virtual decimal? PriceUnit { set; get; }
      // GROSS_AMOUNT
        public virtual decimal? GrossAmount { set; get; }
      // COM_RATE
        public virtual decimal? ComRate { set; get; }
      // COM_AMOUNT
        public virtual decimal? ComAmount { set; get; }
      // VAT_RATE
        public virtual decimal? VatRate { set; get; }
      // VAT_AMOUNT
        public virtual decimal? VatAmount { set; get; }
      // PURCHASE_VALUE_NET
        public virtual decimal? PurchaseValueNet { set; get; }
      // WH_TAX_RATE
        public virtual decimal? WHTaxRate { set; get; }
      // WH_TAX_AMOUNT
        public virtual decimal? WHTaxAmount { set; get; }
      // NET_SETTLE
        public virtual decimal? NetSettle { set; get; }
      // PHYSICAL
        public virtual String Physical { set; get; }
      // KEEP_AT
        public virtual String KeepAT { set; get; }
      // OBLIGATION
        public virtual String Obligation { set; get; }
      // OBLIGATION_NO
        public virtual String ObligationNO { set; get; }
      // GUARANTEE_START_DATE
        public virtual DateTime? GuaranteeStartDate { set; get; }
      // GUARANTEE_END_DATE
        public virtual DateTime? GuaranteeEndDate { set; get; }
      // CREATE_DATE
        public virtual DateTime? CreateDate { set; get; }
      // CREATE_BY
        public virtual String CreateBY { set; get; }
      // MODIFY_DATE
        public virtual DateTime? ModifyDate { set; get; }
      // MODIFY_BY
        public virtual String ModifyBY { set; get; }

        #endregion

        

        public override bool Equals(object obj)
        {
            if(obj == null)
                return false;
            if(obj.GetType() != typeof(UnitTrustTransaction) && !(obj is UnitTrustTransaction))
                return false;
            return ToString().Equals(obj.ToString());
        }

        public override int GetHashCode()
        {
            return ToString().GetHashCode();
        }

        public override string ToString()
        {
            return string.Format("{0}",ID);
        }

    }


}